#include "gui.h"

t_aeroport** aeroports=NULL;
t_avion** avions=NULL;
int nb_avions=5;
int nb_aeroports=10;

void model_init()
{
	model_aeroports();
	model_avions();
}

//des aeroports remplis a partir d'un fichier texte
void model_aeroports()
{
	int a;
	t_aeroport* t;
	aeroports = (t_aeroport**)calloc(nb_aeroports,sizeof(t_aeroport*));
	srand((unsigned)time(NULL));

	for(a=0;a<nb_aeroports;a++)
	{
		t= aeroports[a] = (t_aeroport*)calloc(1,sizeof(t_aeroport));
		t->numero = a;
		t->piste = 3;
		t->place = 3;
		t->x = rand()%1500;
		t->y = rand()%1500;
	}
	msg("model_aeroports:done\n");
}

void model_avions()
{
	int a;
	t_avion* t;
	
	avions = (t_avion**)calloc(nb_avions,sizeof(t_avion*));

	for(a=0;a<nb_avions;a++)
	{
		t = avions[a] = (t_avion*)calloc(1,sizeof(t_avion));
		t->identifiant = a;
		//NOTE : aeroports prochains (celui juste avant, et celui vers lequel on va)
		t->provenance = rand()%nb_aeroports;
		t->direction = t->provenance;
		while(t->direction == t->provenance)
		{
			t->direction = rand()%nb_aeroports;
		}
		//pas de prise en compte de l aposition x,y de l'ancienne structure
		t->sol_air = AIR;
		t->etat = VOL; //serait différent s'il était au sol
		t->avancement = (float)a*0.1;
	}
	msg("model_avions : done\n");
}

void step_sim(gdouble nb_ut)
{
	//on ne fait rien avec le parametre pour l'instant
	int a;
	if(nb_ut > 0)
	{
		simulation_current_ut += nb_ut;
		for(a=0;a<nb_avions;a++)
		{
			avions[a]->avancement += 0.1;
		}
	}
}
